Entitlement and enforcement policies can be used to manage software application execution by computing devices. These policies provide different parameters for software execution, e.g. based on a defined term for a software license, performance criteria for the software application (e.g. a latency guarantee or storage capacity guarantee provided by a storage provider), number of users that are allowed to use a software application at any given time or any other parameter. Furthermore, software applications with different policies may be used in different environments, for example, in a subscription model, in the cloud or any other operating environment.
Typically, policies are hardcoded in the application code base. For example, if a software is licensed for twelve months then a policy within the software code is used to control the licensing term. This approach can be cumbersome and tedious, especially, when the same software application is used in multiple environments, with different licensing terms to accommodate the business interest of the software provider. This may require a software provider to maintain multiple versions of the same application to meet different software licensing objectives. The policies may also have to be changed as the operating conditions/licensing terms for the software applications may change over time. This may require updating the software application code whenever there is a policy change. This adds to the overall cost of software development and maintenance and hence is undesirable for the software providers and the customers using the software. Continuous efforts are being made to streamline software development, software execution and maintenance and optimize costs.